Redéfinir l'OO en Rust consiste à passer des hiérarchies de classes rigides vers un modèle centré sur séparation données-comportement. Alors que les langages traditionnels du système s'appuient sur des arbres d'objets complexes, Rust atteint les objectifs de conception orientée objet — encapsulation et polymorphisme — en utilisant traits et des modules afin de privilégier la sécurité mémoire sans surcharge à l'exécution.
1. Remettre en question la hiérarchie
Rust évite explicitement l'héritage d'implémentation afin d'éviter le problème du classe de base fragile problème. À la place, il privilégie la composition et les Traits pour définir un comportement partagé entre des types différents. Un « objet » ici est une combinaison de données (structs) et de procédures (blocs impl), vérifiée au moment de la compilation.
2. Concurrence et état comme type
Rust gère la concurrence principalement via la bibliothèque standard (Send/Sync traits) plutôt que par le cœur du langage. Pour maximiser la sécurité, l'algorithme Algorithme État-Comme-Type encode des états distincts en types différents. Les transitions retournent de nouvelles instances, déplaçant la logique des instructions à l'exécution si vers des exigences au moment de la compilation.